home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / util / moni / Scout-src.lha / include / MUI / NList_mcc.h next >
C/C++ Source or Header  |  2002-09-16  |  28KB  |  587 lines

  1. /*
  2.   NList.mcc (c) Copyright 1996-1997 by Gilles Masson
  3.   Registered MUI class, Serial Num: 1d51     0x9d510030 to 0x9d5100A0 / 0x9d5100C0 to 0x9d5100FF
  4.   *** use only YOUR OWN Serial Number for your public custom class ***
  5.   NList_mcc.h
  6. */
  7.  
  8.  
  9. /* MUI Prop and Scroller classes stuff which is still not in libraries/mui.h  (in MUI3.8) */
  10. /* it gives to the prop object it's increment value */
  11. #ifndef MUIA_Prop_DeltaFactor
  12. #define MUIA_Prop_DeltaFactor 0x80427C5E
  13. #endif
  14.  
  15.  
  16. #ifndef MUI_NList_MCC_H
  17. #define MUI_NList_MCC_H
  18.  
  19. #ifndef LIBRARIES_MUI_H
  20. #include <libraries/mui.h>
  21. #endif
  22.  
  23.  
  24.  
  25. #define MUIC_NList "NList.mcc"
  26. #define NListObject MUI_NewObject(MUIC_NList
  27.  
  28.  
  29. /* Attributes */
  30.  
  31. #define MUIA_NList_TypeSelect               0x9d510030 /* GM  is.  LONG              */
  32. #define MUIA_NList_Prop_DeltaFactor         0x9d510031 /* GM  ..gn LONG              */
  33. #define MUIA_NList_Horiz_DeltaFactor        0x9d510032 /* GM  ..gn LONG              */
  34.  
  35. #define MUIA_NList_Horiz_First              0x9d510033 /* GM  .sgn LONG              */
  36. #define MUIA_NList_Horiz_Visible            0x9d510034 /* GM  ..gn LONG              */
  37. #define MUIA_NList_Horiz_Entries            0x9d510035 /* GM  ..gn LONG              */
  38.  
  39. #define MUIA_NList_Prop_First               0x9d510036 /* GM  .sgn LONG              */
  40. #define MUIA_NList_Prop_Visible             0x9d510037 /* GM  ..gn LONG              */
  41. #define MUIA_NList_Prop_Entries             0x9d510038 /* GM  ..gn LONG              */
  42.  
  43. #define MUIA_NList_TitlePen                 0x9d510039 /* GM  isg  LONG              */
  44. #define MUIA_NList_ListPen                  0x9d51003a /* GM  isg  LONG              */
  45. #define MUIA_NList_SelectPen                0x9d51003b /* GM  isg  LONG              */
  46. #define MUIA_NList_CursorPen                0x9d51003c /* GM  isg  LONG              */
  47. #define MUIA_NList_UnselCurPen              0x9d51003d /* GM  isg  LONG              */
  48.  
  49. #define MUIA_NList_ListBackground           0x9d51003e /* GM  isg  LONG              */
  50. #define MUIA_NList_TitleBackground          0x9d51003f /* GM  isg  LONG              */
  51. #define MUIA_NList_SelectBackground         0x9d510040 /* GM  isg  LONG              */
  52. #define MUIA_NList_CursorBackground         0x9d510041 /* GM  isg  LONG              */
  53. #define MUIA_NList_UnselCurBackground       0x9d510042 /* GM  isg  LONG              */
  54.  
  55. #define MUIA_NList_MultiClick               0x9d510043 /* GM  ..gn LONG              */
  56.  
  57. #define MUIA_NList_DefaultObjectOnClick     0x9d510044 /* GM  is.  BOOL              */
  58.  
  59. #define MUIA_NList_ClickColumn              0x9d510045 /* GM  ..g  LONG              */
  60. #define MUIA_NList_DefClickColumn           0x9d510046 /* GM  isg  LONG              */
  61. #define MUIA_NList_DoubleClick              0x9d510047 /* GM  ..gn LONG              */
  62. #define MUIA_NList_DragType                 0x9d510048 /* GM  isg  LONG              */
  63. #define MUIA_NList_Input                    0x9d510049 /* GM  isg  BOOL              */
  64. #define MUIA_NList_MultiSelect              0x9d51004a /* GM  is.  LONG              */
  65. #define MUIA_NList_SelectChange             0x9d51004b /* GM  ...n BOOL              */
  66.  
  67. #define MUIA_NList_Active                   0x9d51004c /* GM  isgn LONG              */
  68. #define MUIA_NList_AdjustHeight             0x9d51004d /* GM  i..  BOOL              */
  69. #define MUIA_NList_AdjustWidth              0x9d51004e /* GM  i..  BOOL              */
  70. #define MUIA_NList_AutoVisible              0x9d51004f /* GM  isg  BOOL              */
  71. #define MUIA_NList_CompareHook              0x9d510050 /* GM  is.  struct Hook *     */
  72. #define MUIA_NList_ConstructHook            0x9d510051 /* GM  is.  struct Hook *     */
  73. #define MUIA_NList_DestructHook             0x9d510052 /* GM  is.  struct Hook *     */
  74. #define MUIA_NList_DisplayHook              0x9d510053 /* GM  is.  struct Hook *     */
  75. #define MUIA_NList_DragSortable             0x9d510054 /* GM  isg  BOOL              */
  76. #define MUIA_NList_DropMark                 0x9d510055 /* GM  ..g  LONG              */
  77. #define MUIA_NList_Entries                  0x9d510056 /* GM  ..gn LONG              */
  78. #define MUIA_NList_First                    0x9d510057 /* GM  isgn LONG              */
  79. #define MUIA_NList_Format                   0x9d510058 /* GM  isg  STRPTR            */
  80. #define MUIA_NList_InsertPosition           0x9d510059 /* GM  ..gn LONG              */
  81. #define MUIA_NList_MinLineHeight            0x9d51005a /* GM  is.  LONG              */
  82. #define MUIA_NList_MultiTestHook            0x9d51005b /* GM  is.  struct Hook *     */
  83. #define MUIA_NList_Pool                     0x9d51005c /* GM  i..  APTR              */
  84. #define MUIA_NList_PoolPuddleSize           0x9d51005d /* GM  i..  ULONG             */
  85. #define MUIA_NList_PoolThreshSize           0x9d51005e /* GM  i..  ULONG             */
  86. #define MUIA_NList_Quiet                    0x9d51005f /* GM  .s.  BOOL              */
  87. #define MUIA_NList_ShowDropMarks            0x9d510060 /* GM  isg  BOOL              */
  88. #define MUIA_NList_SourceArray              0x9d510061 /* GM  i..  APTR *            */
  89. #define MUIA_NList_Title                    0x9d510062 /* GM  isg  char *            */
  90. #define MUIA_NList_Visible                  0x9d510063 /* GM  ..g  LONG              */
  91. #define MUIA_NList_CopyEntryToClipHook      0x9d510064 /* GM  is.  struct Hook *     */
  92. #define MUIA_NList_KeepActive               0x9d510065 /* GM  .s.  Obj *             */
  93. #define MUIA_NList_MakeActive               0x9d510066 /* GM  .s.  Obj *             */
  94. #define MUIA_NList_SourceString             0x9d510067 /* GM  i..  char *            */
  95. #define MUIA_NList_CopyColumnToClipHook     0x9d510068 /* GM  is.  struct Hook *     */
  96. #define MUIA_NList_ListCompatibility        0x9d510069 /* GM  ...  OBSOLETE          */
  97. #define MUIA_NList_AutoCopyToClip           0x9d51006A /* GM  is.  BOOL              */
  98. #define MUIA_NList_TabSize                  0x9d51006B /* GM  isg  ULONG             */
  99. #define MUIA_NList_SkipChars                0x9d51006C /* GM  isg  char *            */
  100. #define MUIA_NList_DisplayRecall            0x9d51006D /* GM  .g.  BOOL              */
  101. #define MUIA_NList_PrivateData              0x9d51006E /* GM  isg  APTR              */
  102. #define MUIA_NList_EntryValueDependent      0x9d51006F /* GM  isg  BOOL              */
  103.  
  104. #define MUIA_NList_StackCheck               0x9d510097 /* GM  i..  BOOL              */
  105. #define MUIA_NList_WordSelectChars          0x9d510098 /* GM  isg  char *            */
  106. #define MUIA_NList_EntryClick               0x9d510099 /* GM  ..gn LONG              */
  107. #define MUIA_NList_DragColOnly              0x9d51009A /* GM  isg  LONG              */
  108. #define MUIA_NList_TitleClick               0x9d51009B /* GM  isgn LONG              */
  109. #define MUIA_NList_DropType                 0x9d51009C /* GM  ..g  LONG              */
  110. #define MUIA_NList_ForcePen                 0x9d51009D /* GM  isg  LONG              */
  111. #define MUIA_NList_SourceInsert             0x9d51009E /* GM  i..  struct MUIP_NList_InsertWrap *   */
  112. #define MUIA_NList_TitleSeparator           0x9d51009F /* GM  isg  BOOL              */
  113.  
  114. #define MUIA_NList_SortType2                0x9d5100ED /* GM  isgn LONG              */
  115. #define MUIA_NList_TitleClick2              0x9d5100EE /* GM  isgn LONG              */
  116. #define MUIA_NList_TitleMark2               0x9d5100EF /* GM  isg  LONG              */
  117. #define MUIA_NList_MultiClickAlone          0x9d5100F0 /* GM  ..gn LONG              */
  118. #define MUIA_NList_TitleMark                0x9d5100F1 /* GM  isg  LONG              */
  119. #define MUIA_NList_DragSortInsert           0x9d5100F2 /* GM  ..gn LONG              */
  120. #define MUIA_NList_MinColSortable           0x9d5100F3 /* GM  isg  LONG              */
  121. #define MUIA_NList_Imports                  0x9d5100F4 /* GM  isg  LONG              */
  122. #define MUIA_NList_Exports                  0x9d5100F5 /* GM  isg  LONG              */
  123. #define MUIA_NList_Columns                  0x9d5100F6 /* GM  isgn BYTE *            */
  124. #define MUIA_NList_LineHeight               0x9d5100F7 /* GM  ..gn LONG              */
  125. #define MUIA_NList_ButtonClick              0x9d5100F8 /* GM  ..gn LONG              */
  126. #define MUIA_NList_CopyEntryToClipHook2     0x9d5100F9 /* GM  is.  struct Hook *     */
  127. #define MUIA_NList_CopyColumnToClipHook2    0x9d5100FA /* GM  is.  struct Hook *     */
  128. #define MUIA_NList_CompareHook2             0x9d5100FB /* GM  is.  struct Hook *     */
  129. #define MUIA_NList_ConstructHook2           0x9d5100FC /* GM  is.  struct Hook *     */
  130. #define MUIA_NList_DestructHook2            0x9d5100FD /* GM  is.  struct Hook *     */
  131. #define MUIA_NList_DisplayHook2             0x9d5100FE /* GM  is.  struct Hook *     */
  132. #define MUIA_NList_SortType                 0x9d5100FF /* GM  isgn LONG              */
  133.  
  134.  
  135. #define MUIA_NLIMG_EntryCurrent             MUIA_NList_First   /* LONG (special for nlist custom image object) */
  136. #define MUIA_NLIMG_EntryHeight              MUIA_NList_Visible /* LONG (special for nlist custom image object) */
  137.  
  138. #define MUIA_NList_VertDeltaFactor          MUIA_NList_Prop_DeltaFactor   /* OBSOLETE NAME */
  139. #define MUIA_NList_HorizDeltaFactor         MUIA_NList_Horiz_DeltaFactor  /* OBSOLETE NAME */
  140.  
  141.  
  142. /* Attributes special datas */
  143.  
  144. #define MUIV_NList_TypeSelect_Line        0
  145. #define MUIV_NList_TypeSelect_Char        1
  146.  
  147. #define MUIV_NList_Font                 -20
  148. #define MUIV_NList_Font_Little          -21
  149. #define MUIV_NList_Font_Fixed           -22
  150.  
  151. #define MUIV_NList_ConstructHook_String  -1
  152. #define MUIV_NList_DestructHook_String   -1
  153.  
  154. #define MUIV_NList_Active_Off            -1
  155. #define MUIV_NList_Active_Top            -2
  156. #define MUIV_NList_Active_Bottom         -3
  157. #define MUIV_NList_Active_Up             -4
  158. #define MUIV_NList_Active_Down           -5
  159. #define MUIV_NList_Active_PageUp         -6
  160. #define MUIV_NList_Active_PageDown       -7
  161.  
  162. #define MUIV_NList_First_Top             -2
  163. #define MUIV_NList_First_Bottom          -3
  164. #define MUIV_NList_First_Up              -4
  165. #define MUIV_NList_First_Down            -5
  166. #define MUIV_NList_First_PageUp          -6
  167. #define MUIV_NList_First_PageDown        -7
  168. #define MUIV_NList_First_Up2             -8
  169. #define MUIV_NList_First_Down2           -9
  170. #define MUIV_NList_First_Up4            -10
  171. #define MUIV_NList_First_Down4          -11
  172.  
  173. #define MUIV_NList_Horiz_First_Start     -2
  174. #define MUIV_NList_Horiz_First_End       -3
  175. #define MUIV_NList_Horiz_First_Left      -4
  176. #define MUIV_NList_Horiz_First_Right     -5
  177. #define MUIV_NList_Horiz_First_PageLeft  -6
  178. #define MUIV_NList_Horiz_First_PageRight -7
  179. #define MUIV_NList_Horiz_First_Left2     -8
  180. #define MUIV_NList_Horiz_First_Right2    -9
  181. #define MUIV_NList_Horiz_First_Left4    -10
  182. #define MUIV_NList_Horiz_First_Right4   -11
  183.  
  184. #define MUIV_NList_MultiSelect_None       0
  185. #define MUIV_NList_MultiSelect_Default    1
  186. #define MUIV_NList_MultiSelect_Shifted    2
  187. #define MUIV_NList_MultiSelect_Always     3
  188.  
  189. #define MUIV_NList_Insert_Top             0
  190. #define MUIV_NList_Insert_Active         -1
  191. #define MUIV_NList_Insert_Sorted         -2
  192. #define MUIV_NList_Insert_Bottom         -3
  193.  
  194. #define MUIV_NList_Remove_First           0
  195. #define MUIV_NList_Remove_Active         -1
  196. #define MUIV_NList_Remove_Last           -2
  197. #define MUIV_NList_Remove_Selected       -3
  198.  
  199. #define MUIV_NList_Select_Off             0
  200. #define MUIV_NList_Select_On              1
  201. #define MUIV_NList_Select_Toggle          2
  202. #define MUIV_NList_Select_Ask             3
  203.  
  204. #define MUIV_NList_GetEntry_Active       -1
  205. #define MUIV_NList_GetEntryInfo_Line     -2
  206.  
  207. #define MUIV_NList_Select_Active         -1
  208. #define MUIV_NList_Select_All            -2
  209.  
  210. #define MUIV_NList_Redraw_Active         -1
  211. #define MUIV_NList_Redraw_All            -2
  212. #define MUIV_NList_Redraw_Title          -3
  213.  
  214. #define MUIV_NList_Move_Top               0
  215. #define MUIV_NList_Move_Active           -1
  216. #define MUIV_NList_Move_Bottom           -2
  217. #define MUIV_NList_Move_Next             -3 /* only valid for second parameter (and not with Move_Selected) */
  218. #define MUIV_NList_Move_Previous         -4 /* only valid for second parameter (and not with Move_Selected) */
  219. #define MUIV_NList_Move_Selected         -5 /* only valid for first parameter */
  220.  
  221. #define MUIV_NList_Exchange_Top           0
  222. #define MUIV_NList_Exchange_Active       -1
  223. #define MUIV_NList_Exchange_Bottom       -2
  224. #define MUIV_NList_Exchange_Next         -3 /* only valid for second parameter */
  225. #define MUIV_NList_Exchange_Previous     -4 /* only valid for second parameter */
  226.  
  227. #define MUIV_NList_Jump_Top               0
  228. #define MUIV_NList_Jump_Active           -1
  229. #define MUIV_NList_Jump_Bottom           -2
  230. #define MUIV_NList_Jump_Up               -4
  231. #define MUIV_NList_Jump_Down             -3
  232.  
  233. #define MUIV_NList_NextSelected_Start    -1
  234. #define MUIV_NList_NextSelected_End      -1
  235.  
  236. #define MUIV_NList_PrevSelected_Start    -1
  237. #define MUIV_NList_PrevSelected_End      -1
  238.  
  239. #define MUIV_NList_DragType_None          0
  240. #define MUIV_NList_DragType_Default       1
  241. #define MUIV_NList_DragType_Immediate     2
  242. #define MUIV_NList_DragType_Borders       3
  243. #define MUIV_NList_DragType_Qualifier     4
  244.  
  245. #define MUIV_NList_CopyToClip_Active     -1
  246. #define MUIV_NList_CopyToClip_Selected   -2
  247. #define MUIV_NList_CopyToClip_All        -3
  248. #define MUIV_NList_CopyToClip_Entries    -4
  249. #define MUIV_NList_CopyToClip_Entry      -5
  250. #define MUIV_NList_CopyToClip_Strings    -6
  251. #define MUIV_NList_CopyToClip_String     -7
  252.  
  253. #define MUIV_NList_CopyTo_Active         -1
  254. #define MUIV_NList_CopyTo_Selected       -2
  255. #define MUIV_NList_CopyTo_All            -3
  256. #define MUIV_NList_CopyTo_Entries        -4
  257. #define MUIV_NList_CopyTo_Entry          -5
  258.  
  259. #define MUIV_NLCT_Success                 0
  260. #define MUIV_NLCT_OpenErr                 1
  261. #define MUIV_NLCT_WriteErr                2
  262. #define MUIV_NLCT_Failed                  3
  263.  
  264. #define MUIV_NList_ForcePen_On            1
  265. #define MUIV_NList_ForcePen_Off           0
  266. #define MUIV_NList_ForcePen_Default      -1
  267.  
  268. #define MUIV_NList_DropType_Mask          0x00FF
  269. #define MUIV_NList_DropType_None          0
  270. #define MUIV_NList_DropType_Above         1
  271. #define MUIV_NList_DropType_Below         2
  272. #define MUIV_NList_DropType_Onto          3
  273.  
  274. #define MUIV_NList_DoMethod_Active       -1
  275. #define MUIV_NList_DoMethod_Selected     -2
  276. #define MUIV_NList_DoMethod_All          -3
  277.  
  278. #define MUIV_NList_DoMethod_Entry        -1
  279. #define MUIV_NList_DoMethod_Self         -2
  280. #define MUIV_NList_DoMethod_App          -3
  281.  
  282. #define MUIV_NList_EntryValue             (MUIV_TriggerValue+0x100)
  283. #define MUIV_NList_EntryPosValue          (MUIV_TriggerValue+0x102)
  284. #define MUIV_NList_SelfValue              (MUIV_TriggerValue+0x104)
  285. #define MUIV_NList_AppValue               (MUIV_TriggerValue+0x106)
  286.  
  287. #define MUIV_NList_ColWidth_All          -1
  288. #define MUIV_NList_ColWidth_Default      -1
  289. #define MUIV_NList_ColWidth_Get          -2
  290.  
  291. #define MUIV_NList_ContextMenu_Default    0x9d510031
  292. #define MUIV_NList_ContextMenu_TopOnly    0x9d510033
  293. #define MUIV_NList_ContextMenu_BarOnly    0x9d510035
  294. #define MUIV_NList_ContextMenu_Bar_Top    0x9d510037
  295. #define MUIV_NList_ContextMenu_Always     0x9d510039
  296. #define MUIV_NList_ContextMenu_Never      0x9d51003b
  297.  
  298. #define MUIV_NList_Menu_DefWidth_This     0x9d51003d
  299. #define MUIV_NList_Menu_DefWidth_All      0x9d51003f
  300. #define MUIV_NList_Menu_DefOrder_This     0x9d510041
  301. #define MUIV_NList_Menu_DefOrder_All      0x9d510043
  302. #define MUIV_NList_Menu_Default_This      MUIV_NList_Menu_DefWidth_This
  303. #define MUIV_NList_Menu_Default_All       MUIV_NList_Menu_DefWidth_All
  304.  
  305. #define MUIV_NList_SortType_None          0xF0000000
  306. #define MUIV_NList_SortTypeAdd_None       0x00000000
  307. #define MUIV_NList_SortTypeAdd_2Values    0x80000000
  308. #define MUIV_NList_SortTypeAdd_4Values    0x40000000
  309. #define MUIV_NList_SortTypeAdd_Mask       0xC0000000
  310. #define MUIV_NList_SortTypeValue_Mask     0x3FFFFFFF
  311.  
  312. #define MUIV_NList_Sort3_SortType_Both    0x00000000
  313. #define MUIV_NList_Sort3_SortType_1       0x00000001
  314. #define MUIV_NList_Sort3_SortType_2       0x00000002
  315.  
  316. #define MUIV_NList_Quiet_None             0
  317. #define MUIV_NList_Quiet_Full            -1
  318. #define MUIV_NList_Quiet_Visual          -2
  319.  
  320. #define MUIV_NList_Imports_Active         (1 << 0)
  321. #define MUIV_NList_Imports_Selected       (1 << 1)
  322. #define MUIV_NList_Imports_First          (1 << 2)
  323. #define MUIV_NList_Imports_ColWidth       (1 << 3)
  324. #define MUIV_NList_Imports_ColOrder       (1 << 4)
  325. #define MUIV_NList_Imports_TitleMark      (1 << 7)
  326. #define MUIV_NList_Imports_Cols           0x000000F8
  327. #define MUIV_NList_Imports_All            0x0000FFFF
  328.  
  329. #define MUIV_NList_Exports_Active         (1 << 0)
  330. #define MUIV_NList_Exports_Selected       (1 << 1)
  331. #define MUIV_NList_Exports_First          (1 << 2)
  332. #define MUIV_NList_Exports_ColWidth       (1 << 3)
  333. #define MUIV_NList_Exports_ColOrder       (1 << 4)
  334. #define MUIV_NList_Exports_TitleMark      (1 << 7)
  335. #define MUIV_NList_Exports_Cols           0x000000F8
  336. #define MUIV_NList_Exports_All            0x0000FFFF
  337.  
  338. #define MUIV_NList_TitleMark_ColMask      0x000000FF
  339. #define MUIV_NList_TitleMark_TypeMask     0xF0000000
  340. #define MUIV_NList_TitleMark_None         0xF0000000
  341. #define MUIV_NList_TitleMark_Down         0x00000000
  342. #define MUIV_NList_TitleMark_Up           0x80000000
  343. #define MUIV_NList_TitleMark_Box          0x40000000
  344. #define MUIV_NList_TitleMark_Circle       0xC0000000
  345.  
  346. #define MUIV_NList_TitleMark2_ColMask     0x000000FF
  347. #define MUIV_NList_TitleMark2_TypeMask    0xF0000000
  348. #define MUIV_NList_TitleMark2_None        0xF0000000
  349. #define MUIV_NList_TitleMark2_Down        0x00000000
  350. #define MUIV_NList_TitleMark2_Up          0x80000000
  351. #define MUIV_NList_TitleMark2_Box         0x40000000
  352. #define MUIV_NList_TitleMark2_Circle      0xC0000000
  353.  
  354. #define MUIV_NList_SetColumnCol_Default  -1
  355.  
  356. #define MUIV_NList_GetPos_Start          -1
  357. #define MUIV_NList_GetPos_End            -1
  358.  
  359. #define    MUIV_NList_SelectChange_Flag_Multi (1 << 0)
  360.  
  361.  
  362. /* Structs */
  363.  
  364. struct BitMapImage
  365. {
  366.   ULONG    control;   /* should be == to MUIM_NList_CreateImage for a valid BitMapImage struct */
  367.   WORD     width;     /* if control == MUIA_Image_Spec then obtainpens is a pointer to an Object */
  368.   WORD     height;
  369.   WORD    *obtainpens;
  370.   PLANEPTR mask;
  371.   struct BitMap imgbmp;
  372.   LONG     flags;
  373. };
  374.  
  375.  
  376. struct MUI_NList_TestPos_Result
  377. {
  378.   LONG  entry;   /* number of entry, -1 if mouse not over valid entry */
  379.   WORD  column;  /* numer of column, -1 if no valid column */
  380.   UWORD flags;   /* not in the list, see below */
  381.   WORD  xoffset; /* x offset in column */
  382.   WORD  yoffset; /* y offset of mouse click from center of line */
  383.   WORD  preparse;     /* 2 if in column preparse string, 1 if in entry preparse string, else 0 */
  384.   WORD  char_number;  /* the number of the clicked char in column, -1 if no valid */
  385.   WORD  char_xoffset; /* x offset of mouse clicked from left of char if positive */
  386. };                    /* and left of next char if negative. If there is no char there */
  387.                       /* negative if from left of first char else from right of last one */
  388.  
  389. #define MUI_NLPR_ABOVE  (1<<0)
  390. #define MUI_NLPR_BELOW  (1<<1)
  391. #define MUI_NLPR_LEFT   (1<<2)
  392. #define MUI_NLPR_RIGHT  (1<<3)
  393. #define MUI_NLPR_BAR    (1<<4)  /* if between two columns you'll get the left
  394.                                    column number of both, and that flag */
  395. #define MUI_NLPR_TITLE  (1<<5)  /* if clicked on title, only column, xoffset and yoffset (and MUI_NLPR_BAR)
  396.                                     are valid (you'll get MUI_NLPR_ABOVE too) */
  397. #define MUI_NLPR_ONTOP  (1<<6)  /* it is on title/half of first visible entry */
  398.  
  399.  
  400. struct MUI_NList_GetEntryInfo
  401. {
  402.   LONG pos;             /* num of entry you want info about */
  403.   LONG line;            /* real line number */
  404.   LONG entry_pos;       /* entry num of returned entry ptr */
  405.   APTR entry;           /* entry pointer */
  406.   LONG wrapcol;         /* NOWRAP, WRAPCOLx, or WRAPPED|WRAPCOLx */
  407.   LONG charpos;         /* start char number in string (unused if NOWRAP) */
  408.   LONG charlen;         /* string lenght (unused if NOWRAP) */
  409. };
  410.  
  411. #define NOWRAP          0x00
  412. #define WRAPCOL0        0x01
  413. #define WRAPCOL1        0x02
  414. #define WRAPCOL2        0x04
  415. #define WRAPCOL3        0x08
  416. #define WRAPCOL4        0x10
  417. #define WRAPCOL5        0x20
  418. #define WRAPCOL6        0x40
  419. #define WRAPPED         0x80
  420.  
  421.  
  422. struct MUI_NList_GetSelectInfo
  423. {
  424.   LONG start;        /* num of first selected *REAL* entry/line (first of wrapped from which start is issued) */
  425.   LONG end;          /* num of last selected *REAL* entry/line (first of wrapped from which start is issued) */
  426.   LONG num;          /* not used */
  427.   LONG start_column; /* column of start of selection in 'start' entry */
  428.   LONG end_column;   /* column of end of selection in 'end' entry */
  429.   LONG start_pos;    /* char pos of start of selection in 'start_column' entry */
  430.   LONG end_pos;      /* char pos of end of selection in 'end_column' entry */
  431.   LONG vstart;       /* num of first visually selected entry */
  432.   LONG vend;         /* num of last visually selected entry */
  433.   LONG vnum;         /* number of visually selected entries */
  434. };
  435. /* NOTE that vstart==start, vend==end in all cases if no wrapping is used */
  436.  
  437. /* Methods */
  438.  
  439. #define MUIM_NList_Clear              0x9d510070 /* GM */
  440. #define MUIM_NList_CreateImage        0x9d510071 /* GM */
  441. #define MUIM_NList_DeleteImage        0x9d510072 /* GM */
  442. #define MUIM_NList_Exchange           0x9d510073 /* GM */
  443. #define MUIM_NList_GetEntry           0x9d510074 /* GM */
  444. #define MUIM_NList_Insert             0x9d510075 /* GM */
  445. #define MUIM_NList_InsertSingle       0x9d510076 /* GM */
  446. #define MUIM_NList_Jump               0x9d510077 /* GM */
  447. #define MUIM_NList_Move               0x9d510078 /* GM */
  448. #define MUIM_NList_NextSelected       0x9d510079 /* GM */
  449. #define MUIM_NList_Redraw             0x9d51007a /* GM */
  450. #define MUIM_NList_Remove             0x9d51007b /* GM */
  451. #define MUIM_NList_Select             0x9d51007c /* GM */
  452. #define MUIM_NList_Sort               0x9d51007d /* GM */
  453. #define MUIM_NList_TestPos            0x9d51007e /* GM */
  454. #define MUIM_NList_CopyToClip         0x9d51007f /* GM */
  455. #define MUIM_NList_UseImage           0x9d510080 /* GM */
  456. #define MUIM_NList_ReplaceSingle      0x9d510081 /* GM */
  457. #define MUIM_NList_InsertWrap         0x9d510082 /* GM */
  458. #define MUIM_NList_InsertSingleWrap   0x9d510083 /* GM */
  459. #define MUIM_NList_GetEntryInfo       0x9d510084 /* GM */
  460. #define MUIM_NList_QueryBeginning     0x9d510085 /* Obsolete */
  461. #define MUIM_NList_GetSelectInfo      0x9d510086 /* GM */
  462. #define MUIM_NList_CopyTo             0x9d510087 /* GM */
  463. #define MUIM_NList_DropType           0x9d510088 /* GM */
  464. #define MUIM_NList_DropDraw           0x9d510089 /* GM */
  465. #define MUIM_NList_RedrawEntry        0x9d51008a /* GM */
  466. #define MUIM_NList_DoMethod           0x9d51008b /* GM */
  467. #define MUIM_NList_ColWidth           0x9d51008c /* GM */
  468. #define MUIM_NList_ContextMenuBuild   0x9d51008d /* GM */
  469. #define MUIM_NList_DropEntryDrawErase 0x9d51008e /* GM */
  470. #define MUIM_NList_ColToColumn        0x9d51008f /* GM */
  471. #define MUIM_NList_ColumnToCol        0x9d510091 /* GM */
  472. #define MUIM_NList_Sort2              0x9d510092 /* GM */
  473. #define MUIM_NList_PrevSelected       0x9d510093 /* GM */
  474. #define MUIM_NList_SetColumnCol       0x9d510094 /* GM */
  475. #define MUIM_NList_Sort3              0x9d510095 /* GM */
  476. #define MUIM_NList_GetPos             0x9d510096 /* GM */
  477. #define MUIM_NList_SelectChange       0x9d5100A0 /* GM */
  478. struct  MUIP_NList_Clear              { ULONG MethodID; };
  479. struct  MUIP_NList_CreateImage        { ULONG MethodID; Object *obj; ULONG flags; };
  480. struct  MUIP_NList_DeleteImage        { ULONG MethodID; APTR listimg; };
  481. struct  MUIP_NList_Exchange           { ULONG MethodID; LONG pos1; LONG pos2; };
  482. struct  MUIP_NList_GetEntry           { ULONG MethodID; LONG pos; APTR *entry; };
  483. struct  MUIP_NList_Insert             { ULONG MethodID; APTR *entries; LONG count; LONG pos; };
  484. struct  MUIP_NList_InsertSingle       { ULONG MethodID; APTR entry; LONG pos; };
  485. struct  MUIP_NList_Jump               { ULONG MethodID; LONG pos; };
  486. struct  MUIP_NList_Move               { ULONG MethodID; LONG from; LONG to; };
  487. struct  MUIP_NList_NextSelected       { ULONG MethodID; LONG *pos; };
  488. struct  MUIP_NList_Redraw             { ULONG MethodID; LONG pos; };
  489. struct  MUIP_NList_Remove             { ULONG MethodID; LONG pos; };
  490. struct  MUIP_NList_Select             { ULONG MethodID; LONG pos; LONG seltype; LONG *state; };
  491. struct  MUIP_NList_Sort               { ULONG MethodID; };
  492. struct  MUIP_NList_TestPos            { ULONG MethodID; LONG x; LONG y; struct MUI_NList_TestPos_Result *res; };
  493. struct  MUIP_NList_CopyToClip         { ULONG MethodID; LONG pos; ULONG clipnum; APTR *entries; struct Hook *hook; };
  494. struct  MUIP_NList_UseImage           { ULONG MethodID; Object *obj; LONG imgnum; ULONG flags; };
  495. struct  MUIP_NList_ReplaceSingle      { ULONG MethodID; APTR entry; LONG pos; LONG wrapcol; LONG align; };
  496. struct  MUIP_NList_InsertWrap         { ULONG MethodID; APTR *entries; LONG count; LONG pos; LONG wrapcol; LONG align; };
  497. struct  MUIP_NList_InsertSingleWrap   { ULONG MethodID; APTR entry; LONG pos; LONG wrapcol; LONG align; };
  498. struct  MUIP_NList_GetEntryInfo       { ULONG MethodID; struct MUI_NList_GetEntryInfo *res; };
  499. struct  MUIP_NList_QueryBeginning     { ULONG MethodID; };
  500. struct  MUIP_NList_GetSelectInfo      { ULONG MethodID; struct MUI_NList_GetSelectInfo *res; };
  501. struct  MUIP_NList_CopyTo             { ULONG MethodID; LONG pos; char *filename; APTR *result; APTR *entries; };
  502. struct  MUIP_NList_DropType           { ULONG MethodID; LONG *pos; LONG *type; LONG minx, maxx, miny, maxy; LONG mousex, mousey; };
  503. struct  MUIP_NList_DropDraw           { ULONG MethodID; LONG pos; LONG type; LONG minx, maxx, miny, maxy; };
  504. struct  MUIP_NList_RedrawEntry        { ULONG MethodID; APTR entry; };
  505. struct  MUIP_NList_DoMethod           { ULONG MethodID; LONG pos; APTR DestObj; ULONG FollowParams; /* ... */  };
  506. struct  MUIP_NList_ColWidth           { ULONG MethodID; LONG col; LONG width; };
  507. struct  MUIP_NList_ContextMenuBuild   { ULONG MethodID; LONG mx; LONG my; LONG pos; LONG column; LONG flags; LONG ontop; };
  508. struct  MUIP_NList_DropEntryDrawErase { ULONG MethodID; LONG type; LONG drawpos; LONG erasepos; };
  509. struct  MUIP_NList_ColToColumn        { ULONG MethodID; LONG col; };
  510. struct  MUIP_NList_ColumnToCol        { ULONG MethodID; LONG column; };
  511. struct  MUIP_NList_Sort2              { ULONG MethodID; LONG sort_type; LONG sort_type_add; };
  512. struct  MUIP_NList_PrevSelected       { ULONG MethodID; LONG *pos; };
  513. struct  MUIP_NList_SetColumnCol       { ULONG MethodID; LONG column; LONG col; };
  514. struct  MUIP_NList_Sort3              { ULONG MethodID; LONG sort_type; LONG sort_type_add; LONG which; };
  515. struct  MUIP_NList_GetPos             { ULONG MethodID; APTR entry; LONG *pos; };
  516. struct  MUIP_NList_SelectChange       { ULONG MethodID; LONG pos; LONG state; ULONG flags; };
  517.  
  518.  
  519. #define DISPLAY_ARRAY_MAX 64
  520.  
  521. #define ALIGN_LEFT      0x0000
  522. #define ALIGN_CENTER    0x0100
  523. #define ALIGN_RIGHT     0x0200
  524. #define ALIGN_JUSTIFY   0x0400
  525.  
  526.  
  527. /*
  528.  *  Be carrefull ! the 'sort_type2' member don't exist in releases before 19.96
  529.  *  where MUIM_NList_Sort3, MUIA_NList_SortType2, MUIA_NList_TitleClick2 and
  530.  *  MUIA_NList_TitleMark2 have appeared !
  531.  *  You can safely use get(obj,MUIA_NList_SortType2,&st2) instead if you are not
  532.  *  sure of the NList.mcc release which is used.
  533.  */
  534. struct NList_CompareMessage
  535. {
  536.   APTR entry1;
  537.   APTR entry2;
  538.   LONG sort_type;
  539.   LONG sort_type2;
  540. };
  541.  
  542. struct NList_ConstructMessage
  543. {
  544.   APTR entry;
  545.   APTR pool;
  546. };
  547.  
  548. struct NList_DestructMessage
  549. {
  550.   APTR entry;
  551.   APTR pool;
  552. };
  553.  
  554. struct NList_DisplayMessage
  555. {
  556.   APTR entry;
  557.   LONG entry_pos;
  558.   char *strings[DISPLAY_ARRAY_MAX];
  559.   char *preparses[DISPLAY_ARRAY_MAX];
  560. };
  561.  
  562. struct NList_CopyEntryToClipMessage
  563. {
  564.   APTR entry;
  565.   LONG entry_pos;
  566.   char *str_result;
  567.   LONG column1;
  568.   LONG column1_pos;
  569.   LONG column2;
  570.   LONG column2_pos;
  571.   LONG column1_pos_type;
  572.   LONG column2_pos_type;
  573. };
  574.  
  575. struct NList_CopyColumnToClipMessage
  576. {
  577.   char *string;
  578.   LONG entry_pos;
  579.   char *str_result;
  580.   LONG str_pos1;
  581.   LONG str_pos2;
  582. };
  583.  
  584.  
  585. #endif /* MUI_NList_MCC_H */
  586.  
  587.